7 research outputs found

    Achieving Multi-level Parallelization

    No full text
    Many modern machine architectures feature parallel processing at both the fine-grain and coarse-grain level. In order to efficiently utilize these multiple levels, a parallelizing compiler must orchestrate the interactions of fine-grain and coarse-grain transformations. The goal of the PROMIS compiler project is to develop a multi-source, multitarget parallelizing compiler in which the front-end and back-end are integrated via a single unified intermediate representation. In this paper, we examine the appropriateness of the Hierarchical Task Graph as that representation

    The PROMIS Compiler Prototype

    No full text
    Source code parallelizers and instruction level parallelizers each have specific advantages. Usually, a compiler is designed to be one or the other based on the target architecture and/or algorithms. A compiler that is designed to generate near-optimal code for modern, multi-level machines must have the capabilities of both. This paper describes the prototype of the PROMIS compiler. The prototype was designed to show that loop level and instruction level parallelization can be combined to produce results better than either one alone. In addition, it shows how communication between the levels can produce additional speedup. 1 Introduction Parallelizing compilers automatically restructure sequential code to exploit any inherent parallelism. The granularity, or task size, of the parallel code is largely determined by the compiler designer; and is chosen according to the target architecture and/or application. For example, a compiler for a VLIW (Very Long Instruction Word) machine, would..
    corecore